home *** CD-ROM | disk | FTP | other *** search
/ PsL Monthly 1993 December / PSL Monthly Shareware CD-ROM (December 1993).iso / prgmming / dos / basic / pbtool.exe / SNOW.BAS < prev    next >
BASIC Source File  |  1991-06-13  |  3KB  |  87 lines

  1.  '----------------------------------------------------------
  2. '  PROGRAM: SNOW.BAS            PROGRAMMER: A. KELLETT
  3. '  DATE-WRITTEN: 02/28/91
  4. '  USING POWER BASIC V2.00
  5. '       THIS PROGRAM PRODUCES FALLING SNOWFLAKES ON
  6. '       THE SCREEN TO HELP PREVENT "BURN-IN" OF
  7. '       THE MONITOR.
  8. '  VERSION: 0.9    LAST UPDATED: 00/00/00
  9. '----------------------------------------------------------
  10. VERSION$ = "0.90"
  11. NEWCOMMAND$ = UCASE$(COMMAND$)
  12. IF NEWCOMMAND$ <> "H" AND NEWCOMMAND$ <> "M" AND NEWCOMMAND$ <> "L" THEN
  13.    SCROLLSPEED = .35
  14. ELSE
  15.    IF NEWCOMMAND$ = "H" THEN      '*** HIGH SPEED, SMALL DELAY ***
  16.       SCROLLSPEED = .07
  17.    ELSE
  18.       IF NEWCOMMAND$ = "M" THEN   '*** MED SPEED, MEDIUM DELAY ***
  19.          SCROLLSPEED = .28
  20.       ELSE
  21.          IF NEWCOMMAND$ = "L" THEN  '*** SNOW SPEED, LARGE DELAY ***
  22.             SCROLLSPEED = .55
  23.          END IF
  24.       END IF
  25.    END IF
  26. END IF
  27. CLS
  28. LOCATE 16,20:PRINT "SYNTAX IS:   SNOW L      LOW SPEED SNOW "
  29. LOCATE 17,20:PRINT "             SNOW M      MEDIUM SPEED SNOW"
  30. LOCATE 18,20:PRINT "             SNOW H      HIGH SPEED SNOW"
  31. LOCATE 20,15:PRINT "SNOW V";VERSION$;" - ANDY K.   PRESS ANY KEY TO QUIT."
  32. GOSUB INITIALIZE
  33. DELAY 2.5
  34. GOSUB SNOWING
  35. CLS
  36. LOCATE 20,10:PRINT "SNOW V";VERSION$;" - ANDY K."
  37. END
  38.  
  39. '  INITIALIZE SNOW PATTERNS AND SET UP THE TABLE
  40. '----------------------------------------------------------
  41. INITIALIZE:
  42.    DIM SNOW$(24)
  43.    LINE1$ =_
  44. "*      *     *      *      *      *      *      *      *      *      *      *"
  45.    LINE2$ =_
  46. "  *      *     *      *      *      *      *      *      *      *      *     "
  47.    LINE3$ =_
  48. "       *   *     *       *     *    *    *         *         *      *     *  "
  49.    LINE4$ =_
  50. "           *          *        *             *           *            *      "
  51.    LINE5$ =_
  52. " *  *    *     *  *    *     *    *  *     *     *   *    *    *   *       * "
  53.    LINE6$ =_
  54. "*          *        *           *      *       *      *       *        *     "
  55.    LINE7$ =_
  56. "             *          *               *         * *       *    *           "
  57.    LINE8$ =_
  58. "*     *         *          *         *      *          *                  *  "
  59.  
  60.    SNOW$(1) = LINE1$:SNOW$(2) = LINE2$:SNOW$(3) = LINE3$:SNOW$(4) = LINE4$
  61.    SNOW$(5) = LINE5$:SNOW$(6) = LINE6$:SNOW$(7) = LINE7$:SNOW$(8) = LINE4$
  62.    SNOW$(9) = LINE8$:SNOW$(10) = LINE1$:SNOW$(11) = LINE2$:SNOW$(12) = LINE4$
  63.    SNOW$(13) = LINE3$:SNOW$(14) = LINE4$:SNOW$(15) = LINE5$:SNOW$(16) = LINE4$
  64.    SNOW$(17) = LINE6$:SNOW$(18) = LINE7$:SNOW$(19) = LINE8$:SNOW$(20) = LINE4$
  65.    SNOW$(21) = LINE1$:SNOW$(22) = LINE2$:SNOW$(23) = LINE3$:SNOW$(24) = LINE4$
  66.  
  67. RETURN
  68.  
  69. '  DISPLAY THE SNOW, MOVE THE PATTERNS UPWARD, QUIT AT KEYPRESS
  70. '----------------------------------------------------------
  71. SNOWING:
  72.    KY$ = ""
  73.    WHILE KY$ = ""
  74.       FOR I% = 1 TO 24
  75.      LOCATE I%,1:PRINT SNOW$(I%);
  76.       NEXT I%
  77.       TEMP$ = SNOW$(24)
  78.       FOR I% = 24 TO 2 STEP -1
  79.          SNOW$(I%) = SNOW$(I% - 1)
  80.       NEXT I%
  81.       SNOW$(1) = TEMP$
  82.       DELAY SCROLLSPEED
  83.       KY$ = INKEY$
  84.    WEND
  85. RETURN
  86.  
  87.